<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            width: 100px;
            height: 100px;
            background-color: pink;
        }

        .current {
            background-color: purple;
        }
    </style>
    <script src="jquery.min.js"></script>
</head>

<body>
    <div>hello</div>
    <ul>
        <li>我们都是好孩子</li>
        <li>我们都是好孩子</li>
        <li>我们都是好孩子</li>
        <li>我们都是好孩子</li>
        <li>我们都是好孩子</li>

        <p>这是p</p>
    </ul>
    <ol>

    </ol>
    <script>
        $(function () {
            // 1. 单个事件注册
            // $('div').mouseenter(function(){})

            // 2. 事件处理on
            // 给div注册上mouseenter mouseleave事件，做的事情一样
            $('div').on({
                mouseenter:function(){
                    $('div').css('backgroundColor','red')
            },
                mouseleave:function(){
                    $('div').css('backgroundColor','green')
            },
                click:function(){
                    $('div').css('backgroundColor','yellow')
            }})

            // 给div注册上mouseenter mouseleave事件，做的事情不一样


            //      (1) on可以绑定1个或者多个事件处理程序
            $('div').on('mouseover mouseleave',function(){
                $('div').css('color','orange')
            })
            //      (2) on可以实现事件委托（委派）
            // click 是绑定到ul身上的，但是触发的对象是ul中的小li 
            $('ul').on('click','li',function(){
                $(this).css('backgroundColor','skyblue').siblings().css('backgroundColor','')
            })

            //      (3) on可以给未来动态创建的元素绑定事件
            $('ol').on('click','li',function(){
                $(this).css('color','#bfa')
            })
            $('ol').append('<li>我是后来添加的</li>')

            // 给元素注册事件
            // jQ对象.on('事件名', function () { })

            // 给元素注册事件委托
            // jQ对象.on('事件名', 选择器, function () { })
        })
    </script>
</body>

</html>